import service from '/@/utils/request'

/**
 * 获取水印的页面
 */
interface ApiResponseData<T> {
  code: number
  data: T
  message: string
  success: Boolean
}

export function encoder(image: string | Blob, file: string | Blob) {
  // 构建FormData对象,通过该对象存储要上传的文件
  const formData = new FormData()
  //tempFiles.forEach((item) => formData.append('file', item.file));
  formData.append('image', image) // 遍历当前临时文件List,将上传文件添加到FormData对象中
  formData.append('file', file)
  console.log("encoder"+file)
  return service<ApiResponseData<any>>({
    url: 'encoder',
    method: 'post',
    headers: {
      // 表示上传的是文件,而不是普通的表单数据
      'Content-Type': 'multipart/form-data',
    },
    data: formData,
  })
}

export function decoder(image: string | Blob) {
  /**
   * 解密
   * @type {FormData}
   */

  const formData = new FormData() // 构建FormData对象,通过该对象存储要上传的文件

  //     tempFiles.forEach((item) => formData.append('file', item.file));
  formData.append('image', image) // 遍历当前临时文件List,将上传文件添加到FormData对象中
  return service<ApiResponseData<any>>({
    url: 'decoder',
    method: 'post',
    headers: {
      // 表示上传的是文件,而不是普通的表单数据
      'Content-Type': 'multipart/form-data',
    },
    data: formData,
  })
}

export function resize(image: string | Blob, ratio: string | Blob) {
  /**
   * 解密
   * @type {FormData}
   */

  const formData = new FormData() // 构建FormData对象,通过该对象存储要上传的文件

  //     tempFiles.forEach((item) => formData.append('file', item.file));
  formData.append('image', image) // 遍历当前临时文件List,将上传文件添加到FormData对象中
  formData.append('ratio', ratio) // 遍历当前临时文件List,将上传文件添加到FormData对象中
  return service<ApiResponseData<any>>({
    url: 'resize',
    method: 'post',
    headers: {
      // 表示上传的是文件,而不是普通的表单数据
      'Content-Type': 'multipart/form-data',
    },
    data: formData,
  })
}

export function convert(image: string | Blob, format: string | Blob) {
  /**
   * 解密
   * @type {FormData}
   */

  const formData = new FormData() // 构建FormData对象,通过该对象存储要上传的文件

  //     tempFiles.forEach((item) => formData.append('file', item.file));
  formData.append('image', image) // 遍历当前临时文件List,将上传文件添加到FormData对象中
  formData.append('format', format) // 遍历当前临时文件List,将上传文件添加到FormData对象中
  return service<ApiResponseData<any>>({
    url: 'convert',
    method: 'post',
    headers: {
      // 表示上传的是文件,而不是普通的表单数据
      'Content-Type': 'multipart/form-data',
    },
    data: formData,
  })
}

export function compress(image: string | Blob, quality: string | Blob) {
  /**
   * 解密
   * @type {FormData}
   */

  const formData = new FormData() // 构建FormData对象,通过该对象存储要上传的文件

  //     tempFiles.forEach((item) => formData.append('file', item.file));
  formData.append('image', image) // 遍历当前临时文件List,将上传文件添加到FormData对象中
  formData.append('quality', quality) // 遍历当前临时文件List,将上传文件添加到FormData对象中
  return service<ApiResponseData<any>>({
    url: 'compress',
    method: 'post',
    headers: {
      // 表示上传的是文件,而不是普通的表单数据
      'Content-Type': 'multipart/form-data',
    },
    data: formData,
  })
}
